package pe.edu.pucp.dp1.gui.controlador;

//import pe.edu.pucp.dp1.lectura.controlador.GestorCar;
import pe.edu.pucp.dp1.lectura.controlador.GestorCar;
import pe.edu.pucp.dp1.procesamiento.controlador.GestorInterseccion;

public class HiloPintaZona extends Thread {

    public static GestorInterseccion gestorInter = GestorInterseccion.getInstance();
    public static GestorGUI gestorGUI = GestorGUI.getInstance();
    public static GestorCar gestorCar = GestorCar.getInstance();
    //public static GestorConexion gestorConexion = GestorConexion.getInstance();

    int auxRefresh=30;
    public void run() {

        while (true) {
            try {
                //System.out.println("Entre HiloPintaZona");
                Thread.sleep(1000);
                //OBTENER INTER DE ZONA POR RMI
                if (gestorInter.obtInterPorCoord(gestorGUI.getZonaActivaX(), gestorGUI.getZonaActivaY()) != null) {
                    gestorGUI.ActMapaGUI(gestorInter.obtInterPorCoord(gestorGUI.getZonaActivaX(), gestorGUI.getZonaActivaY()));

                }
                //OBTENER VEHICULOS POR ZONA POR RMI
                if (gestorCar.listCarrosPorZona(gestorGUI.getZonaActivaX(), gestorGUI.getZonaActivaY()).getListCars().size() > 0) {
                    gestorGUI.ActVehGUI(gestorCar.listCarrosPorZona(gestorGUI.getZonaActivaX(), gestorGUI.getZonaActivaY()).getListCars());
                    //System.out.println("Size Zona activa vehiculos: " + gestorCar.listCarrosPorZona(gestorGUI.getZonaActivaX(), gestorGUI.getZonaActivaY()).getListCars().size());
                    //System.out.println("X: "+gestorGUI.getZonaActivaX());
                    //System.out.println("Y: "+gestorGUI.getZonaActivaY());
                }
                if(gestorCar.velocidadPromedio()>0){
                     //System.out.println("Velocidad: "+gestorCar.velocidadPromedio());
                     gestorGUI.setVelocidadProm(gestorCar.velocidadPromedio());
                }
                if(auxRefresh==0){
                    //Minimapa
                    gestorGUI.ActMiniMapaGUI();
                    auxRefresh=10;
                }
                else{
                    auxRefresh--;
                }
                

                //gestorGUI.ActVehGUI(gestorGUI.genDataVehiculos());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public HiloPintaZona() {

    }

}
